System and method of optical reading employing virtual scan lines

ABSTRACT

Optical reading system and methods having multiple modes of operation, for example: omnidirectional and single-code picking; fixed and handheld reading; 1D and 2D code reading. In one configuration, an image-based system obtains input data via an area sensor (e.g., a 2D COD array) with only data corresponding to a pattern of virtual scan lines being stored and processed. A user may implement different operating modes such as a first mode reading codes in any location or orientation and a second mode reading only a code oriented along a particular virtual scan line or group thereof. Alternately, the data reader is operable to switch between handheld mode selecting a first pattern of virtual scan lines to process and/or decode and a fixed mode selecting a second pattern of virtual scan lines to process and/or decode. Virtual scan patterns in either mode can change from frame to frame.

RELATED APPLICATION DATA

This application claims priority to provisional application Ser. No.60/620,053 filed Oct. 18, 2004, hereby incorporated by reference.

BACKGROUND

The field of the present invention relates to data capture devices, suchas scanners and other optical code and object reading devices. Incertain embodiments, optical readers and methods of reading aredescribed herein which employ virtual scan lines.

A barcode label comprises a series of parallel dark bars of varyingwidths with intervening light spaces, also of varying widths. Theinformation encoded in the barcode is represented by the specificsequence of bar and space widths, the precise nature of thisrepresentation depending on which particular barcode symbology is inuse. Typical methods for reading barcodes comprise generation of anelectronic signal wherein a signal voltage alternates between two presetvoltage levels, one representing a dark bar and the other representing alight space. The temporal widths of these alternating pulses of high andlow voltage levels correspond to the spatial widths of the bars andspaces. It is this temporal sequence of alternating voltage pulses ofvarying widths which is presented to an electronic decoding apparatusfor decoding.

In one method of reading, referred to as a “scanning,” an illuminationbeam is moved (i.e., scanned) across the barcode while a photodetectormonitors the reflected or backscattered light. For example, thephotodetector may generate a high voltage when a large amount of lightscattered from the barcode impinges on the detector, as from a lightspace, and likewise may produce a low voltage when a small amount oflight scattered from the barcode impinges on the photodetector, as froma dark bar. The illumination source in spot scanners is a typically alaser, but may comprise a coherent light source (such as a laser orlaser diode) or non-coherent light source (such as light emittingdiode). A laser illumination source may offer advantages of higherintensity illumination which may allow barcodes to be read over a largerrange of distances from the barcode scanner (large depth of field) andunder a wider range of background illumination conditions.

Another method of reading is referred to as the “imaging” method wherebylight reflecting off a surface is detected by an array (commonly acharge-coupled device or CCD) of optical detectors. The scan surface istypically illuminated by some uniform light source, such as alight-emitting diode (LED). Alternately, the illumination may beprovided by ambient light such as disclosed in U.S. Pat. No. 5,814,803hereby incorporated by reference. In such an imaging technique, as witha scanning laser, an electrical signal is generated having an amplitudedetermined by the intensity of the collected light. In either thescanning laser or CCD technique, the amplitude of the electrical signalhas one level for dark bars and a second level for light spaces. As thelabel is scanned, positive-going and negative-going transitions in theelectrical signal occur, signifying transitions between bars and spaces.Techniques are known for detecting edges of bars and spaces by detectingthe transitions of the electrical signal. Techniques are also known fordetermining the widths of bars and spaces based on the relative locationof the detected edges and decoding the information represented by thebar code.

An imaging system may comprise a linear (one-dimensional) array or maycomprise a two-dimensional array of CCD elements to obtain an entireimage of the optical code at one time. However, the drawback of thesetwo-dimensional devices is that large amounts of memory are needed tostore the image to be processed, and large amounts of computation areneeded to extract the edge location data from the stored image. Further,complicated algorithms are necessary to determine the orientation andcharacteristics of the bar code label. One method of overcoming certainof these drawbacks is described in U.S. Pat. No. 6,142,376, herebyincorporated by reference, which discloses a method for reading encodedsymbols such as bar code labels by making efficient use of area scannedinput. Input data is provided by an area sensor such as a twodimensional CCD array or a video tube, or a single line sensor (such asa single line CCD or a single line laser scanner) combined with eithermovement of the item or an additional transverse scanning mechanismproviding the second axis of the raster scan. Not all of the scanningdata, but only a select portion of the data corresponding to virtualscan lines is stored and processed. A pattern of virtual scan lines isdefined based on the dimensions of bar code labels to be scanned, thesize of the scanning area, and the characteristics of the scanningsensor and optics. The virtual scan lines are mapped onto the rasterpattern, allowing the pixels of the raster which fall on the virtualscan lines to be identified. As the raster scan proceeds, informationregarding the intensity of the detected light is stored only for thepixels comprising the virtual scan lines. The amount of data stored is afraction of the total data in the raster. After the pixel values havebeen stored for a virtual scan line, the edges of the bars and spacescrossed by the line is determined by a suitable method such as analog ordigital processing.

Generally, there are typically two types of scanners: handheld or fixed.In a fixed scanner, there are two modes of operation: “sweep” mode and“presentation” mode. In sweep mode, bar coded items are moved through ascan volume in front of the scanner, the scanner typically takingadvantage of the movement of the item to enhance potential readcoverage. In presentation mode, the item may be held by the operator infront of the scanner, the scanner preferably producing a sufficientlyomnidirectional scan pattern to read the bar code in any orientation.

In a handheld scanner, an operator holds the scanner and manually aims ascan pattern at a bar code. Handheld single line scanners, whetherimaging or flying spot laser, require that an operator aim and orientthe scanner relative to the bar code so that the scan line issubstantially perpendicular to the bar code edges. Such operationrequires some care on the part of the operator and reduces productivity.Furthermore, these devices are sensitive to label defects, as detectionof bar and space edges is typically done along a single narrow scanline. To maximize the productivity of the operator and minimize stressesdue to repetitive motions of the operator's body, and to minimizesensitivity to label defects, it is generally desirable to read barcodes which may be at any orientation relative to the scanning device.

In the fixed mode of operation, a relatively wide angular field of viewis required so that a barcode label can be read from the largestpossible fraction of the surface of the barcoded object. Since objectsare often passed through the scan volume in random orientations, amulti-dimensional pattern is necessary to efficiently read the barcode.In addition, a high scan rate is desirable to allow successful readingof barcodes which are quickly passed through the scan volume.

A simpler scan pattern or a single scan line is often sufficient forportable operation, since the relatively small portable barcode scannercan be rotated to orient the scan line correctly across the barcode. Arelatively small angular field of view and a relatively longer depth offield are desirable in this mode of operation. The longer depth of fieldmay also allow the operator to read the barcode from a greater (orcloser) distance. The reduced angular field of view reduces thelikelihood of inadvertent scanning of other barcode labels, but in turnleads to tighter aiming requirements. To facilitate proper orientationof the scan line relative to the barcode and aiming of the scanner, thescan line may be made sufficiently intense to be seen by the operator.Alternatively, a portable barcode scanner may be provided with pointerilluminators to facilitate aiming of the barcode scanner.

There are also hybrid scanners designed to operate both in fixed andhandheld modes of operation. U.S. Pat. No. 6,575,368, herebyincorporated by reference, discloses a dual mode laser scanner that isswitchable between a handheld mode generating a single scan line and afixed mode generating a multiple scan line omnidirectional scan pattern.In one embodiment, the '368 patent discloses generating both sets ofscan patterns, but only decoding the single scan line during handheldmode of operation.

The present inventor has recognized there is still a need for versatileand effective data readers of different configurations.

SUMMARY

The present invention is directed to optical reading systems. In apreferred embodiment, the system has multiple modes of operation, forexample: (1) omnidirectional and single-code picking; (2) fixed andhandheld reading; (3) 1D and 2D code reading. In a preferredconfiguration, the reading system is an image-based system wherein theinput data may be provided by an area sensor such as a two dimensionalCCD array, CMOS or a video tube, or other suitable mechanism. Preferablyonly a select portion of the data corresponding to virtual scan lines isstored and processed. The image is typically read out in a predefinedpattern, such as a raster pattern, due to the limitations of the imagingdevice. A complete raster pattern from the top to the bottom of theimage is termed a frame. As the raster scan proceeds, informationregarding the intensity of the detected light is stored only for thepixels comprising the virtual scan lines. The amount of data stored is afraction of the total data in the raster.

In certain embodiments the system may permit complex patterns of scanlines to be read and processed by a simple, compact sensing device. Thesystem may permit the user to implement different operating modes suchas a first mode of reading optical codes in any location or orientationand a second mode of reading only an optical code oriented along aparticular virtual scan line or group of lines, for example linesintersecting an aiming pattern or a band of parallel virtual scan lines.

In another embodiment, the virtual scan pattern changes from frame toframe. The pattern may begin with an omnidirectional pattern and thenchange to a different omnidirectional pattern to provide more densecoverage. Such dense coverage may be useful, for example, to read highlytruncated labels.

In another embodiment, the virtual scan pattern changes from frame toframe. The pattern may begin with an omnidirectional pattern and thenchange to a directional pattern, such as a set of parallel lines, as thesystem recognizes portions of a barcode to be read. This enables higherperformance with a lower processing burden, as more of the virtual scanlines become oriented in the direction of the barcode.

In another embodiment, the data reader comprises a portable unit enabledto be operated in a handheld mode. Preferably, the portable unit hasmultiple operating modes. For example, the data reader may be operableto switch between operating in a handheld mode selecting a first patternof virtual scan lines to process and/or decode and a fixed modeselecting a second pattern of virtual scan lines to process and/ordecode.

The foregoing and other objects, features, and advantages will becomeapparent from the following more detailed description set forth inconjunction with the accompanying drawings. It is intended that each ofthese disclosed embodiments may be implemented individually or incombination with other of the embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing an optical code scanning systememploying virtual scan line methodology.

FIG. 2 is a more detailed block diagram of an image acquisition systemblock as depicted in FIG. 1.

FIG. 3 is a diagram showing projection of an optical code or minimumdecodable piece onto a raster scanning surface according to a firstembodiment.

FIG. 4 is a diagram showing projection of an optical code or minimumdecodable piece onto a raster scanning surface according to a secondembodiment.

FIG. 5 is a diagram showing projection of an optical code label orminimum decodable piece onto a raster scanning surface according to athird embodiment.

FIG. 6 is a flow chart for a method of data acquisition according to afirst embodiment.

FIG. 7 is a diagram showing projection of an optical code onto a rasterscanning surface according to a fourth embodiment.

FIG. 8 is a diagram showing projection of an optical code onto a rasterscanning surface according to a fifth embodiment.

FIG. 9 is a perspective view of a data reader and housing according to apreferred embodiment.

FIGS. 10 a-d are diagrams showing a progression of virtual scan patternsaccording to another embodiment.

FIGS. 11 a-c are diagrams showing a progression of virtual scan patternsaccording to another embodiment.

FIG. 12 is a diagram representing an application having a symmetrictransmit region that is larger that the aiming spot.

FIG. 13 is a diagram representing another application having anon-symmetric transmit region that is larger than the aiming spot.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The preferred embodiments will now be described with reference to thedrawings. Certain preferred embodiments may be described with respect tobarcodes (1D and 2D codes), but the disclosure should be understood asapplicable to various types of optical codes (e.g. MaxiCode and PDF417)as well as other recognition elements such as fingerprints.

FIG. 1 is a block diagram of a scanning system 1 according to apreferred embodiment, wherein the system 1 may be divided at an abstractlevel into an image acquisition block 2, a virtual scan line generatorblock 4, and an edge detection and decode block 6. Referring to FIG. 2,the image acquisition block 2 comprises a light source 10 illuminating aoptical label 11 and an imaging sensor 12 comprised of optics (notshown) detecting the reflected and/or refracted light from the opticallabel 11. The imaging sensor 12 has a planar imaging region 13 and maybe, for example, a two-dimensional CCD array. Alternatively, the planarimaging region 13 of the optical sensor 12 may be a linear CCD arraythat obtains a second dimension of raster input by relative motion ofthe optical sensor 12 to the optical label 11. The relative motion maybe created by sweeping the optical sensor 12 across an optical label 11,or by sweeping the optical label 11 manually or automatically (e.g., byconveyor) across the optical sensor 12. In the case of a linear CCDarray, one dimension of the imaging region 13 is defined by the relativemotion of the optical sensor 12 to the optical label 11 over some periodof time. Although the imaging region 13 may be various shapes, a planarimaging surface is preferred. In contrast to a conventional multi-linelaser scanner having a laser and mirrors, the optical sensing portion ofan area scanning system may be quite small because of the relativelysmall size of the CCD array.

Any suitable imaging mechanism may be employed, preferably one capableof detecting a 2-D image, including CCD or CMOS. Preferably, the sensingmechanism is an image-based solid state device comprising either asingle detector or an array of detectors.

In another system where a moving spot laser is scanned in a sufficientlydense pattern so as to create/approximate a 2-D sensor array output,typically a single detector may be employed. The data may be processedin several fashions. In one processing system, the data is dropped inserial fashion into a buffer array, the array is then processed byselecting the data points corresponding to the virtual scan linepattern. Alternately, as the signal is detected, the data pointscorresponding to the virtual scan lines may picked off as they arriveand sent directly to the processor (for decoding), thus not requiring abuffer at all. In another preferred method, the data pointscorresponding to the virtual scan lines are picked off as they arriveand placed into smaller virtual scan line buffers, one virtual scan linebuffer corresponding to each virtual scan line. As each virtual scanline buffer is completed, that virtual scan line buffer data is sent tothe processor for decoding. Since horizontal virtual scan lines arecomplete within a single row of the 2D array, then such a horizontalvirtual scan line may be sent directly to the processor withoutbuffering. The Bresenham line drawing algorithm is an efficient softwarealgorithm to implement the choosing of virtual scan line pixels.

In a 2D imaging array, the image is acquired onto the sensor array, andthen the pixel information from the array is stored in memory (e.g. amemory buffer) corresponding to the sensor array. FIG. 3 illustrates apreferred system in which a pattern 250 of virtual scan lines 252, 254,256, 258, 260, 262 is generated within the imaging region to capture thebarcode with a minimum amount of memory storage. Preferably, the pixeldata from the imaging array is read out serially, and the data pointscorresponding to the virtual scan lines are picked off as they arriveand placed into smaller virtual scan line buffers, one virtual scan linebuffer corresponding to each virtual scan line. As each virtual scanline buffer is completed, that virtual scan line buffer data is sent tothe processor for decoding. Since horizontal virtual scan lines arecomplete within a single row of the 2D array, then such a horizontalvirtual scan line (e.g., line 252 in FIG. 3) may be sent directly to theprocessor without buffering. The Bresenham line drawing algorithm is anefficient software algorithm to implement the choosing of virtual scanline pixels. Though only six virtual scan lines 252-262 are shown, othernumber of virtual scan lines or patterns may be employed. The asteriskpattern 250 of virtual scan lines provides a reasonable likelihood ofcapturing a barcode label (e.g. label 240) disposed at variousorientation within the imaging region 230. It is noted that theconfiguration of the particular virtual scan line pattern depends uponthe dimensions and type of the optical code to be scanned, the size ofthe scanning area, and the characteristics of the scanning sensor andoptics.

In the system of FIG. 3, a targeting or aiming pattern 236 is generatedand disposed at the center of the imaging region 230 to assist the userin locating the barcode on the item at an optimum position relative tothe scanner. In this example, the aiming pattern 236 is illustrated as alarge circular spot at the center of the scan pattern 250. Alternately,the aiming pattern may comprise any suitable shape, such as an aimingspot, a geometric shape, a two-dimensional image, an aiming linesegment, a geometric pattern, a logo image, or a recognizable patternsuch as an image of a barcode or a shipping label. Other shapes orimages of aiming pattern are described in U.S. Pat. No. 6,223,986 herebyincorporated by reference. Preferably the aiming pattern is generated bya separate light source than the system's illumination source, but itmay be generated by the same source via a suitable method such asmethods disclosed in U.S. Pat. No. 6,575,368, 5,296,689, or 5,146,463each hereby incorporated by reference. The aiming pattern may beemployed in any one or more of the various modes of operation. Theaiming pattern may be generated by any suitable mechanism such as LED,laser diode, halogen, broad band or white light source, or any suitablevisible light.

In FIG. 3, barcodes 240, 242, 243, 244, 245, and 248 can be decoded byone of the virtual scan lines 252, 256, 258, and 260. It is oftendesirable that only the barcode that intersects the aiming pattern 236be acknowledged and transmitted to the host terminal. In this case, thelocation along the virtual scan lines of each barcode that can beidentified is determined and compared with the location of the aimingpattern on the corresponding virtual scan line. If at least a portion ofthe barcode is determined to be close to or intersecting the aimingpattern 236, the data is then acknowledged and transmitted to the hostterminal.

In FIG. 3, only barcode 240 meets this positional condition. Althoughbarcodes 243, 244, 245, 248, and 252 are capable of being read, onceenough information is gathered to determine that they are not within apredetermined range of the center of the aiming pattern, they areignored. In some cases, all of the barcodes may be read by the scannerin order to verify their locations along the virtual scan lines but onlybarcode 240 will be acknowledged and transmitted to the host terminal.

Various activation schemes for the aiming pattern may be employed. Forexample, the aiming pattern may be on continuously and even used asnon-ambient lighting for the image reading. The aiming pattern may beused in a wake-up feature. In another configuration, since the aimingpattern may interfere with reading, the aiming pattern may be cycled onand off intermittently with reading process such as:

-   -   turning aiming pattern on;    -   turning aiming pattern off;    -   acquiring an image;    -   turning aiming pattern on;    -   turning aiming pattern off;    -   acquiring an image; etc.        Instead of alternating, the system may use a filter or dichroic        mirror to allow simultaneous aiming pattern projection and image        reading. The aiming pattern may alternately be generated from a        specific color of light that does not interfere with the imaging        process or may be readily filtered.

Preferably the aiming pattern is coincident (or alternately parallel orcoaxial) with the field of view of the reader so that the axis of thelight that generates the aiming pattern is coincident or parallel withthe axis of the imaging system. The larger, more diffuse the aimingpattern/spot the less parallel/coincident the aiming pattern need be.

It is noted that the likelihood of a bar code being successfully read bythis pattern 250 depends upon both the orientation and location of thebar code within the scan region 230. In this pattern, a bar code 240located near the center within the aiming spot 236 has the highestlikelihood of being successfully read. Further out from the center, barcodes oriented such as labels 242, 243, 244, 245 aligned with arespective virtual scan line are successfully read. A bar code such aslabel 248 located in an outer portion of the scan region 230 andobliquely intersecting virtual scan line 248 may also be successfullyread by a single virtual scan line.

When operated as a sweep scanner, the item being scanned is moved intoand through the scan volume 230. This movement gives the scan lines theopportunity for a complete scan (or partial scan which may be stitchedwith other code segments) of a bar code as it is passed across a scanline.

When operated in a presentation mode or a handheld mode, the bar codelabel remains generally stationary relative to the pattern so if thecode does not fall on a virtual scan line, the code may not besuccessfully read. Since the scan lines of the virtual pattern arearbitrary and controlled via software, the pattern may be changed toenhance the probability of a successful scan. For example, the asteriskpattern 250 may be rotated 2° for each consecutive scan therebyenhancing the probability of scanning all the segments of code anywherein the scan volume 230. Other schemes for modifying of the virtual scanpatterns may be employed.

FIG. 4 illustrates another system in which a pattern 350 of virtual scanlines 352, 354, 356, 358, 360, 362 is generated within the imagingregion 330 to capture a barcode. Only six virtual scan lines 352-362 areshown. The asterisk pattern 350 of virtual scan lines provides areasonable likelihood of capturing a barcode label (e.g. label 346)disposed at various orientations within the imaging region 330. It isnoted that the configuration of the particular pattern depends upon thedimensions of the bar code labels to be scanned, the size of thescanning area, and the characteristics of the scanning sensor andoptics.

In the system of FIG. 4, a targeting or aiming pattern 336 is generatedand disposed at the center of the imaging region 330 to assist the userin locating the barcode on the item at an optimum position relative tothe scanner. In this example, the aiming pattern 336 is illustrated as asmall circular spot at the center of the scan pattern 350. Alternately,the aiming pattern may comprise any suitable shape such as describedpreviously.

In the system of FIG. 4, the aiming pattern 336 is smaller than aimingpattern 236 of FIG. 3. In this case, the scanner may be configured toacknowledge and send barcode 346 to the host even though it is notcompletely enclosed by aiming pattern 336. In the extreme case where theradius of aiming pattern 336 becomes very small, the scanner can beconfigured to acknowledge and transmit barcodes that intersect a certainregion around the aiming pattern. This region can be configured to bedifferent sizes and shapes, depending on the application.

It is noted that the likelihood of a bar code being successfully read bythis pattern 350 depends upon both the orientation and location of thebar code within the scan region 330. In this pattern, a bar code 346located near the center within the aiming pattern/spot 336 has thehighest likelihood of being successfully read and since it intersectsthe aiming/spot 336 it may be selectively read by the system. Furtherout from the center, bar codes oriented such as labels 342, 344, 348aligned with a respective virtual scan line may be successfully read,but may be selectively excluded as not intersecting the aiming pattern336.

FIG. 5 illustrates a preferred system in which a pattern of virtual scanlines 50 is generated within the imaging region to provide a highlikelihood of capture of the barcode with a minimum amount of memorystorage. The asterisk pattern of virtual scan lines 50 provides a highlikelihood of capturing any of the barcode label 40, 42, 44, 46 disposedat any orientation within the imaging region 30. The particular patterndepends upon the dimensions of the bar code labels to be scanned, thesize of the scanning area, and the characteristics of the scanningsensor and optics. The pattern is designed so a minimum decodable pieceof a barcode label 40 which is positioned anywhere in the imaging region30 and at any orientation, will be readable by at least one virtual scanline.

In the system of FIG. 5, a targeting or aiming pattern 36 is generatedand disposed at the center of the imaging region 30. In this example,the aiming pattern 36 is illustrated as a large circular spot at thecenter of the scan pattern 50. Alternately, the aiming pattern maycomprise any suitable shape, such as an aiming spot, a geometric shape,a two-dimensional image, an aiming line segment, a geometric pattern, alogo image, or a recognizable pattern such as an image of a barcode, ashipping label. Other shapes or images of aiming pattern are describedin U.S. Pat. No. 6,223,986 hereby incorporated by reference. Preferablythe aiming pattern is generated by a separate light source than thesystem's illumination source, but it may be generated by the same sourcevia a suitable method such as methods disclosed in U.S. Pat. No.6,575,368, 5,296,689, or 5,146,463 each hereby incorporated byreference. The aiming pattern may be employed in any one or more of thevarious modes of operation.

In one embodiment, the scan pattern 50 is comprised of a plurality ofbands 52, 54, 56, 58, 62, 64, 66, 68, 70, 72, 74 each of a plurality ofgenerally parallel virtual scan lines. In the embodiment of FIG. 5,there are eleven generally parallel virtual scan lines in each band 52,54 etc., with each band being rotationally offset by about 15° to theband adjacent thereto. Other suitable virtual scan line patterns may beemployed such as a raster pattern, an asterisk pattern, a multipleraster with lines at varying angles, or an omnidirectional pattern suchas emulating scan patterns generated by laser scanners such as the PSCInc. Magellan® scanner described in U.S. Pat. No. 5,475,207 or the PSCInc. Duet® scanner described in U.S. Pat. No. 6,575,368, each of thesehereby incorporated by reference. Though a band of parallel linesprovides certain advantages when picking out a single barcode, a singleline pattern may be preferred in certain applications.

A first embodiment comprises a reading system and method whereby asingle barcode 40 out of a plurality of barcodes 40, 42, 44, 46 withinthe scan region 30 is reported and/or decoded. FIG. 6 illustrates afirst preferred method 100 that may comprise the following steps:

-   -   Step 110: Start.    -   Step 112: Projecting an aiming pattern 36 into the scan region        30 by, for example, one of the suitable methods described above.    -   Step 114: The operator (not shown) positioning the aiming        pattern 36 onto the optical code 40 which is desired to read out        of the plurality of optical codes 40, 42, 44, 46 in the scan        region 30. There are multiple ways of positioning the scan        pattern. If the data reader is handheld, the operator        manipulates the reader so as to aim/move the aiming pattern onto        the barcode. If the data reader is a fixed unit, the operator        moves the item bearing the barcode into the scan region,        positioning the item such that the barcode is positioned within        or intersecting the spot.    -   Step 116: Forming an image of the scan region 30 onto a sensor        array or imaging sensor 12 and detecting the image.    -   Step 118: Storing only a selected portion of data comprised of        selected points of the image corresponding to a pattern of        virtual scan lines 50. In the illustrated pattern 50 of FIG. 5,        there are 264 virtual scan lines, eleven scan lines in each of        the 24 bands 52 to 98 of virtual scan lines.    -   Step 120: Processing the stored data to locate an optical code.    -   Step 122: Determining if the aiming pattern intersects the        optical code found in Step 120. If the aiming pattern is        determined to intersect the optical code, proceeding to Step        124.    -   Step 124: Acknowledging and transmitting data acquired from the        optical code.

In Steps 122 and the previous Step 120, the system reads the opticalcode that is intersected by the aiming pattern 36. For example, in FIG.3, only optical code 40 is intersected by the aiming pattern 36. Thusonly optical 40 is read, the system acknowledging with the customarysuccessful read “beep” for example, and the data from that code is thentransmitted to the host or POS.

If it is determined in Step 122 that the optical code found does notintersect the aiming pattern, that optical code is ignored.

The process is repeated from step 112 as the operator moves the aimingpattern onto the desired optical code.

The selected portion of data may be decoded at any suitable stage,including (1) prior to determining if the aiming pattern intersects theoptical code, (2) after determining if the aiming pattern intersects theoptical code and prior to transmitting, or (3) after transmitting.

Alternately, the system may selectively switch between (a) a first modeof operation wherein an optical code is acknowledged and transmittedonly if the aiming pattern is determined to intersect the optical codeand (b) a second mode of operation wherein an optical code isacknowledged and transmitted regardless of whether the aiming pattern isdetermined to intersect the optical code.

The system may be provided with a switch whereupon the system switchesmodes upon actuation of the switch by the operator. For example, anexternal switch or button may be provided on the reader housing. Uponactuation of the switch by the operator, the reader may switch into thecode picking mode whereby the reader activates the aiming pattern andonly reads the barcode intersecting the aiming pattern.

In another embodiment, a first switch activation may be used to initiatethe aiming pattern and a second activation of the same switch or anotherswitch may be used to read the optical code intersecting the aimingpattern.

In another embodiment, the reader may comprises a portable unit operablein a fixed mode and a handheld mode. The switch may comprise either amanually actuated switch on the housing or alternately a sensor whichsenses when the reader is moved (using a motion sensor or accelerometer)or is grasped by the operator (such as a contact sensor). Upon sensingthat the reader has been moved or grasped, the reader activates theaiming pattern and only reads the barcode intersected by the aimingpattern.

In another preferred method, a single optical code out of a plurality ofoptical codes present in the scan region is acknowledged and transmittedby the steps of

-   -   Acquiring an image of a scan region 30 into a sensor array 12.    -   Reading only a selected optical code 40 out of a plurality of        optical codes 40, 42, 44, 46 present within the scan region 30,        by the steps of        -   projecting an aiming pattern 36 into the scan region 30;        -   positioning (preferably by action of an operator) the aiming            pattern 36 onto the selected optical code 40;        -   processing a selected portion of data at only selected            points along a pattern of virtual scan lines 50 in the scan            region 30 and thereby locating an optical code;        -   determining if the aiming pattern 36 intersects the optical            code that has been located;        -   if the aiming pattern 36 is determined to intersect the            optical code that has been located, acknowledging and            transmitting the optical code.    -   While operating in the handheld mode, switching between        operating in the first mode and operating in the second mode.

The selected portion of data may be decoded at any suitable stage,including (1) prior to determining if the aiming pattern intersects theoptical code, (2) after determining if the aiming pattern intersects theoptical code and prior to transmitting, or (3) after transmitting.Alternately, the system may selectively switch between (a) a first modeof operation wherein an optical code is acknowledged and transmittedonly if the aiming pattern is determined to intersect the optical codeand (b) a second mode of operation wherein an optical code isacknowledged and transmitted regardless of whether the aiming pattern isdetermined to intersect the optical code. The method may comprisereading optical codes with a portable data reader operable in a fixedmode and a handheld mode.

Another preferred method for reading optical symbols with a data reader,may comprise the following steps:

-   -   Acquiring an image of a two-dimensional imaging region into a        sensor array.    -   Operating in a first mode by processing a selected portion of        data at only selected points along a pattern of virtual scan        lines arranged in multiple directions about the two-dimensional        imaging region.    -   Operating in a second mode by processing a selected portion of        data at only selected points along a pattern of virtual scan        lines consisting of a band of a plurality of generally parallel        virtual scan lines. FIG. 5 illustrates a specific band 52 of        eleven generally parallel virtual scan lines. The band of lines        provides for added density along a scan direction for reading        optical codes such as barcodes and PDF-417 codes.    -   Decoding the selected portion of data according to the pattern        of virtual scan lines.

As with previous embodiments, the reader may comprise a housing suitablefor portable operation. A switch provided on the reader housing permitsthe operator to switch between the first mode and the second mode viaactuation of the switch. Alternately a portable unit may include asensor for sensing either motion of the unit or grasping by the operatorand switching from the first mode to the second mode upon sensing thatthe data reader has been grasped by the user.

In another embodiment, optical codes are read by the steps of:

-   -   Acquiring an image of a two-dimensional imaging region 30 into a        sensor array 12.    -   Operating in a handheld mode by processing a only selected        portion of data at selected points along a pattern of virtual        scan lines consisting of (a) a single virtual scan line or (b) a        band of a plurality of generally parallel virtual scan lines;    -   Operating in a fixed mode by processing only a selected portion        of data at only selected points along a pattern of virtual scan        lines arranged in multiple directions about the two-dimensional        imaging region;    -   Decoding the selected portion of data according to the pattern        of virtual scan lines.

In a method according to another embodiment, optical codes are read witha data reader by the steps of

-   -   Acquiring an image of a two-dimensional imaging region into a        sensor array.    -   Operating in a handheld mode by (1) generating an aiming pattern        whereby a user positions the aiming pattern onto an optical code        within the imaging region, and (2) storing data at only selected        points along a pattern of virtual scan lines intersecting the        aiming pattern.    -   Decoding data that has been stored.

This method may be operable for switching as between the fixed mode ofoperation and the handheld mode of operation. In one embodiment, whenoperating in the fixed mode, the reader stores only a selected portionof data at selected points along a pattern of a plurality of virtualscan lines spanning the two-dimensional imaging region in multipledirections. That selected portion is a subset of the entirety of virtualscan lines such as (1) a single scan line, (2) a band of a plurality ofparallel scan lines, (3) a specialized pattern for example designed forefficient reading of particular label such as PDF-417 symbology.

In yet another embodiment, a data reader may read optical symbols by thesteps of:

-   -   Acquiring an image of a two-dimensional imaging region into a        sensor array.    -   Projecting an aiming pattern into the two-dimensional imaging        region.    -   Operating in a first mode by processing only a selected portion        of data at only selected points along a pattern of virtual scan        lines arranged in multiple directions about the two-dimensional        imaging region.    -   Operating in a second mode by processing only a selected portion        of data at only selected points along a pattern of virtual scan        lines intersecting the aiming pattern.    -   Decoding the selected portion of data according to the pattern        of virtual scan lines.

The scan region is preferably imaged by a sensor array such as a CCDCMOS with a pattern of virtual scan lines defining a selected portion ofthe image data to be stored and processed. The above methods may beimplemented in a system with the scan data generated by a laser beam. Insuch a system, the laser beam is scanned by rotating or oscillatingmirror(s), or other suitable method, to produce a desiredtwo-dimensional scan pattern such as an asterisk pattern. Return signalis collected onto a detector. Applied to one of the above-describedmethods, knowing the identity/location or each scan line, only the barcode intersecting the aiming pattern is acknowledged.

The size and shape of the aiming pattern may be optimized to obtaindesired functionality. For example, the aiming spot 236 of FIG. 3 isrelatively large, that is significantly larger than a typical UPC/EANbarcode. Of course the size of the spot 236 will likely depend in partupon the distance of the barcode from the scanner. The relative spotsize is considered at a typical reading distance. In one methodology,the system may select to decode or read only barcodes that fallcompletely within the aiming spot 236 such as barcode 240. Alternately,the system may decode or read only barcodes that intersect the spot 236.

In another example, the aiming spot 336 of FIG. 4 is relatively smalland the system may selectively decode, read or report only barcodes suchas barcode 346 that intersect the spot.

Another system 430 is shown in FIG. 7 wherein the virtual scan pattern450 may be any suitable configuration, here again shown as an asteriskpattern. In this system, the aiming pattern 436 is rectangular with itslong axis oriented horizontally. Such a shaped pattern may urge the userto orient the barcode 440 in a similar orientation as shown in thefigure.

The virtual scan line system may also be adaptive, changing the scanpattern based upon reading. As shown in FIG. 8, if while scanning aPDF417 barcode 445 and the system detects this particular type ofbarcode, the system may adapt, changing the aiming spot from the smallerrectangle 436 of FIG. 7 to another configuration such as to largerrectangle 437, and also changing the scan pattern 450 for example byadding some additional scan lines 455 (the figure shows only fouradditional horizontal virtual scan lines, but a larger number of suchlines would be preferred) for optimizing reading of this type of opticalcode.

FIGS. 10 a-d are diagrams showing a progression of virtual scan patternsaccording to another embodiment. In this embodiment, a denser scanpattern is created by rotating a sparser pattern from frame to frame.FIG. 10 a shows a captured frame that is processed with six verticalscan lines and five horizontal scan lines. FIG. 10 b shows thesubsequent frame with the virtual scan pattern rotated 22 degrees. FIG.10 c shows a subsequent frame with another 23 degree rotation for atotal of 45 degrees. FIG. 10 d shows a subsequent frame with a total of67 degree rotation from FIG. 10 a. The next frame would continue withthe scan pattern of FIG. 10 a. In this manner, the combined scan patternof four frames has 44 scan lines in 8 different orientations, whilebeing implemented with a scan pattern that has only 11 scan lines perframe in two orientations. This method allows for improved reading oftruncated barcodes without additional processing of scan lines perframe. In addition to rotation, the virtual scan lines may be offsetfrom each other on subsequent frames to create a more dense pattern whenaveraged over more than one frame.

FIGS. 11 a-c further illustrates the adaptive scan line concept. In FIG.11 a the scan pattern is designed for omnidirectional reading. If one ofthe scan lines in FIG. 11 a has a decodable portion of a barcode, thescan pattern is modified to include scan lines of similar orientation. Aset of parallel lines of similar orientation and nearby orientation aregenerated to more accurately line up with the barcode, as shown in FIG.11 b, the so-called “reduced search pattern”. Subsequent frames coulduse virtual scan lines that use more parallel lines with fewerorientations, as the orientation of the barcode is discovered by whichvirtual scan lines have the most decodable information contained withinthem, as shown in FIG. 11 c. While this scheme is particularly effectivewith stacked codes like PDF417, it also improves the read rate of linearcodes like UPC. The virtual scan line pattern may adapt, changing thevirtual pattern even as frequently as between frames. Alternately, adifferent scan pattern may be applied to the same frame if the framedata is stored in memory.

For example, a preferred method of adapting as between frames maycomprise the following steps:

-   -   acquiring data from a two-dimensional scan region;    -   in a first frame, storing portions of the two-dimensional scan        region along a virtual scan pattern according to a first pattern        of virtual scan lines;    -   processing data from the virtual scan lines of the first pattern        to find decodable data;    -   in a second frame, changing the virtual scan pattern to a second        pattern of virtual scan lines, such as based on location and        orientation of decodable data in the first frame;    -   storing (or selecting) portions of the two-dimensional scan        region along a virtual scan pattern according to a second        pattern of virtual scan lines;    -   processing data from the virtual scan lines of the second        pattern to find decodable data.

Additional, the method may include further steps of (1) changing thevirtual scan pattern from frame to frame from a predefined sequence ofvirtual scan patterns or (2) changing the virtual scan pattern on asubsequent frame based on content of the decodable data of the virtualscan lines of the previous frame.

FIG. 12 represents a common application where many barcodes are printedon a single sheet but only bar code 505 is to be transmitted to thehost. Although aiming pattern 501 is very small, compared with bar code505, the transmit region 502 is a large circle with a radius sufficientto allow ease of aiming. Any bar code that intersects transmit region502 will be acknowledged and transmitted to the host. Region 502 islimited in size to insure that it does not intersect adjacent barcodes506 and 507.

FIG. 13 represents a different application where the barcodes are closertogether and in a single column. Only bar code 508 is to be transmittedto the host. In this case, transmit region 504 is configured to be anarrow rectangle to optimize ease of aiming without allowing barcodes509 or 510 to be transmitted accidentally.

FIG. 9 illustrates an industrial design according to one preferredembodiment for use with the reading systems and methods describedherein. The reader 500 includes a reader section 510 extendingvertically from base section 520. The base section 520 includes apivoting mechanism 525 to allow the reader section 510 to pivot relativeto the base section so as adjust the field of view on front of the readwindow 515. The reader section 510 may be grasped by the user andmanipulated as a palm-style, portable scanner and aimed at the target ina handheld operating mode. The unit 500 may be movable for handheldoperation with the base section 520 remaining attached to the readersection 510 or the reader section may be disconnected from the basesection 520.

While various aspects of invention have been particularly shown anddescribed with reference to certain embodiments, it will be understoodby those skilled in the art that various changes in form and detail maybe made without departing from the spirit and scope of the invention.

1. A method for reading one out of a plurality of optical codes presentin a scan region, using a data reader, comprising the steps of: the datareader projecting a visible aiming pattern into the scan region;acquiring an image of the entire scan region into a sensor arrayincluding at least a first optical code and a second optical code; byoperation of a user, aligning the aiming pattern onto the first opticalcode; processing a portion of the image of the scan region along apattern of virtual scan lines to locate both the first and secondoptical codes at any position(s) within the scan region; the data readerdetermining if the aiming pattern intersects either one of the opticalcodes; if the aiming pattern is determined by the data reader tointersect the first optical code and to not intersect the second opticalcode, acknowledging and transmitting data acquired from the firstoptical code and not acknowledging and not transmitting data acquiredfrom the second optical code.
 2. A method according to claim 1 whereinthe step of processing a portion of the image comprises storing only aselected portion of data comprised of only selected points of the imagecorresponding to the pattern of virtual scan lines.
 3. A methodaccording to claim 1 further comprising an operator positioning theaiming pattern onto the optical code.
 4. A method according to claim 1wherein the step of processing a portion of the image comprises pickingoff only a selected portion of data comprised of only selected points ofthe image corresponding to a pattern of virtual scan lines withoutstoring all of the points of the image.
 5. A method according to claim 4further comprising decoding the selected portion of data afterdetermining if the aiming pattern intersects the first optical code andprior to transmitting.
 6. A method according to claim 4 furthercomprising decoding the selected portion of data after transmitting. 7.A method according to claim 4 further comprising decoding the selectedportion of data prior to determining if the aiming pattern intersectsthe first optical code.
 8. A method according to claim 1 furthercomprising illuminating the optical code with an illumination source,wherein the aiming pattern is generated by a light source separate fromthe illumination source.
 9. A method according to claim 1 wherein theaiming pattern is selected from the group consisting of: an aiming spot,a two-dimensional image, an aiming line segment, a geometric pattern, alogo image.
 10. A method according to claim 1 wherein the virtual scanlines forms a pattern selected from the group consisting of: a rasterpattern, an asterisk pattern, a multiple raster with lines at varyingangles, an omnidirectional pattern, a single line pattern, a band of aplurality of generally parallel lines.
 11. A method according to claim 1wherein the method for optical reading comprises a handheld mode ofoperation, wherein the operator aims a handheld data reader at theoptical code for positioning the aiming pattern onto the optical code.12. A method according to claim 1 wherein the method for optical readingcomprises a fixed mode of operation, wherein the operator moves an itembearing the optical code within the scan region for positioning theaiming pattern onto the optical code.
 13. A method according to claim 1further comprising selectively switching between (a) a first mode ofoperation wherein an optical code is acknowledged and transmitted onlyif the aiming pattern is determined to intersect the optical code and(b) a second mode of operation wherein an optical code is acknowledgedand transmitted regardless of whether the aiming pattern is determinedto intersect the optical code.
 14. A method according to claim 13further comprising switching to the first mode of operation uponactuation of a switch by the operator.
 15. A method according to claim13 wherein the data reader comprises a portable unit selectivelyoperable in a fixed mode and a handheld mode of operation.
 16. A methodaccording to claim 13 wherein the data reader comprises a portable unitoperable in a fixed mode and a handheld mode, the method furthercomprising sensing whether the data reader has been grasped by theoperator; switching to the first mode of operation upon sensing that thedata reader has been grasped by the operator.
 17. A method according toclaim 13 further comprising projecting the aiming pattern only whenoperating in the first mode of operation and not the second mode ofoperation.
 18. A method for reading optical codes with a data reader,comprising the steps of: acquiring an image of an entire scan regioninto a sensor array; reading only a selected optical code out of aplurality of optical codes present within the scan region, by the stepsof projecting a visible aiming pattern into the scan region containingat least a first optical code and a second optical code; by action of anoperator, positioning the aiming pattern onto the selected first opticalcode; processing a selected portion of data at only selected pointsalong a pattern of virtual scan lines in the scan region and therebylocating both the first and second optical codes; by action of the datareader, determining if the aiming pattern intersects either of the firstand second optical codes that have been located; if the aiming patternis determined by the data reader to intersect the first optical codethat has been located and not intersect the second optical code,acknowledging and transmitting only the first optical code and not thesecond optical code, and if the aiming pattern is determined by the datareader to not intersect any optical code that has been located, then notacknowledging and not transmitting any optical code.
 19. A methodaccording to claim 18 further comprising decoding the optical code afterdetermining if the aiming pattern intersects the optical code and priorto transmitting.
 20. A method according to claim 18 further comprisingdecoding the optical code after transmitting.
 21. A method according toclaim 18 further comprising selectively switching between (a) a firstmode of operation wherein an optical code is acknowledged andtransmitted only if the aiming pattern is determined to intersect theoptical code and (b) a second mode of operation wherein an optical codeis acknowledged and transmitted regardless of whether the aiming patternis determined to intersect the optical code.
 22. A method according toclaim 21 further comprising projecting the aiming pattern only whenoperating in the first mode of operation and not the second mode ofoperation.
 23. A method according to claim 21 wherein the methodcomprises reading optical codes with a portable data reader operable ina fixed mode and a handheld mode.
 24. A method according to claim 23further comprising while operating in the handheld mode, switchingbetween operating in the first mode and operating in the second mode.25. A method for reading optical codes, comprising the steps of:acquiring with a data reader an image of a two-dimensional imagingregion into a sensor array, wherein the two-dimensional imaging regioncontains at least a first optical code and a second optical code;operating in a handheld mode by processing only a selected portion ofdata at only selected points along a pattern of virtual scan linesconsisting of (a) a single virtual scan line or (b) a band of aplurality of generally parallel virtual scan lines; operating in a fixedmode by processing only a selected portion of data at selected pointsalong a pattern of virtual scan lines arranged in multiple directionsabout the two dimensional imaging region; decoding the selected portionof data according to the pattern of virtual scan lines, wherein the stepof operating in a handheld mode further comprises projecting a visibleaiming pattern into the two dimensional imaging region; by operation ofa user, aligning the aiming pattern onto the first optical code; byaction of the data reader, determining if the aiming pattern intersectseither of the first and second optical codes; if the aiming pattern isdetermined by the data reader to intersect the first optical code andnot the second optical code, acknowledging and transmitting dataacquired from the first optical code and not from the second opticalcode, and if the aiming pattern is determined by the data reader to notintersect either the first or second optical codes, then notacknowledging and not transmitting data acquired from the optical codes.26. A method according to claim 25 further comprising selectivelyswitching between operating in the handheld mode of operation and thefixed mode of operation.
 27. A method according to claim 25 furthercomprising sensing whether the data reader has been grasped by a user;switching from the fixed mode to the handheld mode upon sensing that thedata reader has been grasped by the user.
 28. A method according toclaim 25 further comprising providing the data reader with a switch;switching from the fixed mode to the handheld mode upon actuation of theswitch by a user.
 29. A method for reading optical codes with a datareader, comprising the steps of: acquiring an image of a two-dimensionalimaging region into a sensor array; operating in a handheld mode bygenerating a visible aiming pattern whereby a user positions the aimingpattern onto an optical code within the imaging region, and storing dataat only selected points along a pattern of virtual scan lines determinedby the data reader to intersect the aiming pattern and not storing datafrom virtual scan lines determined by the data reader to not intersectthe aiming pattern; decoding data that has been stored.
 30. A method ofdata reading according to claim 29 further comprising operating in afixed mode by storing only a selected portion of data at selected pointsalong a pattern of a plurality of virtual scan lines spanning thetwo-dimensional imaging region in multiple directions; selectivelyswitching operation as between the handheld mode and the fixed mode. 31.A method for reading optical symbols with a data reader, comprising thesteps of: acquiring an image of a two-dimensional imaging region into asensor array; projecting a visible aiming pattern into the twodimensional imaging region; operating in a first mode by processing onlya selected portion of data at only selected points along a pattern ofvirtual scan lines arranged in multiple directions about thetwo-dimensional imaging region; operating in a second mode by processingonly a selected portion of data at only selected points along a patternof virtual scan lines determined by the data reader to intersect theaiming pattern and not processing along virtual scan lines determined bythe data not to intersect the aiming pattern; decoding the selectedportion of data according to the pattern of virtual scan lines.
 32. Amethod for reading optical symbols with a data reader, comprising thesteps of: acquiring, with the date reader, data from a two-dimensionalscan region, the two-dimensional scan region containing at least a firstoptical code and a second optical code; processing the data to detectthe first optical code and the second optical code; operating in a firstmode by transmitting optical codes detected anywhere within the scanregion; operating in a second mode by projecting a visible aimingpattern into the two-dimensional scan region and (a) transmitting thefirst optical code and not the second optical code if the first opticalcode is determined by the data reader to intersect the aiming patternand the second optical code is determined not to intersect, (b)transmitting neither of the optical codes if both the first and secondoptical codes are determined by the data reader to not intersect theaiming pattern.
 33. A method according to claim 32 wherein the step ofacquiring comprises acquiring data along a pattern of virtual scan lineswithin the two-dimensional scan region.
 34. A method according to claim32 wherein the step of acquiring comprises storing only a selectedportion of the data comprised of selected points of the datacorresponding to a pattern of virtual scan lines.